INT86

               #include <dos.h>
               int int86(intno,inregs,outregs);
               int ntno;                     номер (число) прерывания зна-
               union REGS *inregs;           чения  регистров  при вызове
               union REGS *outregs;          значения  регистров  при воз-
                                             врате
 

Описание.
Функция int86 выполняет прерывание 8086 программного обеспечения, которое определено номером прерывания intno . Перед выполнением прерывания int86 копирует содержимое inregs в соответствующие регистры. После возврата прерывания функция копирует значение текущего регистра в outregs . Она также копирует статус переносимого флага системы в поле cflag , содержащееся в outregs.
Аргументы inregs и outregs являются объединениями типа REGS . Тип бъединения объявлен в include -файле <dos.h>. Использование функции int86 предназначено для вызовов прерываний DOS.

Возвращаемое значение.
Возвращаемым значением является значение в регистре AX после возврата прерывания. Если поле cflag в outregs ненулевое, возникает ошибка и переменная _doserrno также устанавливает соответствующий код ошибки.

Пример:

                
               #include <signal.h>
               #include <dos.h>
               #include <stdio.h>
               #include <process.h>
                
               /*  прерывание  номер 0х23, подхватываемое процедурой обра-
         ботки прерываний int_handler.  Замечание:  Значения  в  структуре
         regs не имеют смысла для этого прерывания. */
                
               #define CNTRL_C 0x23
               int int_handler(int);
               union REGS rregsr;
               .
               .
               .
               signal (SIGINT, int_handler);
               .
               .
               .
               int86 (CNTRL_C, &rregsr, &rregsr);
               
Hosted by uCoz